package com.jiangyifen.robot.service;

import java.util.Map;

import com.jiangyifen.robot.core.Robot;
import com.jiangyifen.robot.core.session.RobotSession;
import com.jiangyifen.robot.entity.ChatNodeEntity;
import com.jiangyifen.robot.entity.ChatRecordEntity;

public interface RobotSessionService {
	
    /**
     * 获取一个新的回话
     * 
     * @param scenarioId
     * @param robot
     * @return
     */
	RobotSession getNewSession(Long scenarioId, Robot robot);
	
	/**
	 * 获取指定场景的所有节点
	 * 
	 * @param scenarioId
	 * @return
	 */
	Map<Long, ChatNodeEntity> getChatNodesByScenarioId(Long scenarioId);
	
	/**
	 * 获取指定场景的首节点
	 * 
	 * @param scenarioId
	 * @return
	 */
	ChatNodeEntity getFirstChatNode(Long scenarioId);
	
	/**
	 * 获取指定的节点
	 * 
	 * @param chatNodeEntityId
	 * @return
	 */
	ChatNodeEntity getChatNodeEntity(Long chatNodeEntityId);
	
	/**
	 * 根据 nodeCode获取ChatNodeEntity
	 * @param nodeCode
	 * @return
	 */
	ChatNodeEntity getChatNodeEntity(String nodeCode);
	
	void saveChatRecord(ChatRecordEntity chatRecordEntity);
	
}
